using System;
using System.Linq.Expressions;
using PropertyExpression.ControllableQuery.TypedReader;

namespace PropertyExpression.ControllableQuery.Test.Queries
{
    public static class IPublicationInfoDataReaderExtensions
    {
        private static readonly Expression<Func<PropertyExpression.ControllableQuery.Test.Queries.IPublicationInfo, System.Guid>> publicationId = _ => _.PublicationId;
        public static System.Guid PublicationId(this IDataReader<PropertyExpression.ControllableQuery.Test.Queries.IPublicationInfo> it)
        {
            return it.GetValue(publicationId);
        }

        private static readonly Expression<Func<PropertyExpression.ControllableQuery.Test.Queries.IPublicationInfo, PropertyExpression.ControllableQuery.Test.NVarChar<PropertyExpression.ControllableQuery.Test.L25>>> code = _ => _.Code;
        public static PropertyExpression.ControllableQuery.Test.NVarChar<PropertyExpression.ControllableQuery.Test.L25> Code(this IDataReader<PropertyExpression.ControllableQuery.Test.Queries.IPublicationInfo> it)
        {
            return it.GetValue(code);
        }

        private static readonly Expression<Func<PropertyExpression.ControllableQuery.Test.Queries.IPublicationInfo, System.Guid>> publicationTypeId = _ => _.PublicationTypeId;
        public static System.Guid PublicationTypeId(this IDataReader<PropertyExpression.ControllableQuery.Test.Queries.IPublicationInfo> it)
        {
            return it.GetValue(publicationTypeId);
        }

        private static readonly Expression<Func<PropertyExpression.ControllableQuery.Test.Queries.IPublicationInfo, PropertyExpression.Common.IOptionalValue<System.Guid>>> followingPublicationId = _ => _.FollowingPublicationId;
        public static PropertyExpression.Common.IOptionalValue<System.Guid> FollowingPublicationId(this IDataReader<PropertyExpression.ControllableQuery.Test.Queries.IPublicationInfo> it)
        {
            return it.GetValue(followingPublicationId);
        }

    }
}

namespace PropertyExpression.ControllableQuery.Test.Queries.StringBuilding
{
    public static class IPublicationTypeInfoDataReaderExtensions
    {
        private static readonly Expression<Func<PropertyExpression.ControllableQuery.Test.Queries.StringBuilding.IPublicationTypeInfo, System.Guid>> publicationTypeId = _ => _.PublicationTypeId;
        public static System.Guid PublicationTypeId(this IDataReader<PropertyExpression.ControllableQuery.Test.Queries.StringBuilding.IPublicationTypeInfo> it)
        {
            return it.GetValue(publicationTypeId);
        }

        private static readonly Expression<Func<PropertyExpression.ControllableQuery.Test.Queries.StringBuilding.IPublicationTypeInfo, int>> code = _ => _.Code;
        public static int Code(this IDataReader<PropertyExpression.ControllableQuery.Test.Queries.StringBuilding.IPublicationTypeInfo> it)
        {
            return it.GetValue(code);
        }

        private static readonly Expression<Func<PropertyExpression.ControllableQuery.Test.Queries.StringBuilding.IPublicationTypeInfo, PropertyExpression.Common.IOptionalValue<PropertyExpression.ControllableQuery.Test.NVarChar<PropertyExpression.ControllableQuery.Test.L4000>>>> description = _ => _.Description;
        public static PropertyExpression.Common.IOptionalValue<PropertyExpression.ControllableQuery.Test.NVarChar<PropertyExpression.ControllableQuery.Test.L4000>> Description(this IDataReader<PropertyExpression.ControllableQuery.Test.Queries.StringBuilding.IPublicationTypeInfo> it)
        {
            return it.GetValue(description);
        }

        private static readonly Expression<Func<PropertyExpression.ControllableQuery.Test.Queries.StringBuilding.IPublicationTypeInfo, PropertyExpression.ControllableQuery.Test.Decimal<PropertyExpression.ControllableQuery.Test.P18, PropertyExpression.ControllableQuery.Test.S7>>> decimal1 = _ => _.Decimal1;
        public static PropertyExpression.ControllableQuery.Test.Decimal<PropertyExpression.ControllableQuery.Test.P18, PropertyExpression.ControllableQuery.Test.S7> Decimal1(this IDataReader<PropertyExpression.ControllableQuery.Test.Queries.StringBuilding.IPublicationTypeInfo> it)
        {
            return it.GetValue(decimal1);
        }

        private static readonly Expression<Func<PropertyExpression.ControllableQuery.Test.Queries.StringBuilding.IPublicationTypeInfo, PropertyExpression.ControllableQuery.Test.Money>> money1 = _ => _.Money1;
        public static PropertyExpression.ControllableQuery.Test.Money Money1(this IDataReader<PropertyExpression.ControllableQuery.Test.Queries.StringBuilding.IPublicationTypeInfo> it)
        {
            return it.GetValue(money1);
        }

    }
}

namespace PropertyExpression.ControllableQuery.Test.Queries
{
    public static class IModelPublicationInfoDataReaderExtensions
    {
        private static readonly Expression<Func<PropertyExpression.ControllableQuery.Test.Queries.IModelPublicationInfo, System.Guid>> publicationId = _ => _.PublicationId;
        public static System.Guid PublicationId(this IDataReader<PropertyExpression.ControllableQuery.Test.Queries.IModelPublicationInfo> it)
        {
            return it.GetValue(publicationId);
        }

        private static readonly Expression<Func<PropertyExpression.ControllableQuery.Test.Queries.IModelPublicationInfo, PropertyExpression.ControllableQuery.Test.NVarChar<PropertyExpression.ControllableQuery.Test.L20>>> modelCode = _ => _.ModelCode;
        public static PropertyExpression.ControllableQuery.Test.NVarChar<PropertyExpression.ControllableQuery.Test.L20> ModelCode(this IDataReader<PropertyExpression.ControllableQuery.Test.Queries.IModelPublicationInfo> it)
        {
            return it.GetValue(modelCode);
        }

        private static readonly Expression<Func<PropertyExpression.ControllableQuery.Test.Queries.IModelPublicationInfo, PropertyExpression.ControllableQuery.Test.NVarChar<PropertyExpression.ControllableQuery.Test.L2>>> modelSequence = _ => _.ModelSequence;
        public static PropertyExpression.ControllableQuery.Test.NVarChar<PropertyExpression.ControllableQuery.Test.L2> ModelSequence(this IDataReader<PropertyExpression.ControllableQuery.Test.Queries.IModelPublicationInfo> it)
        {
            return it.GetValue(modelSequence);
        }

    }
}

namespace PropertyExpression.ControllableQuery.Test.Queries.T4
{
    public static class IPartLinkInfoDataReaderExtensions
    {
        private static readonly Expression<Func<PropertyExpression.ControllableQuery.Test.Queries.T4.IPartLinkInfo, PropertyExpression.Common.IOptionalValue<PropertyExpression.ControllableQuery.Test.NVarChar<PropertyExpression.ControllableQuery.Test.L15>>>> partNumber = _ => _.PartNumber;
        public static PropertyExpression.Common.IOptionalValue<PropertyExpression.ControllableQuery.Test.NVarChar<PropertyExpression.ControllableQuery.Test.L15>> PartNumber(this IDataReader<PropertyExpression.ControllableQuery.Test.Queries.T4.IPartLinkInfo> it)
        {
            return it.GetValue(partNumber);
        }

    }
}

namespace PropertyExpression.ControllableQuery.Test
{
    public static class IModelPublicationInfoDataReaderExtensions
    {
        private static readonly Expression<Func<PropertyExpression.ControllableQuery.Test.IModelPublicationInfo, System.Guid>> publicationId = _ => _.PublicationId;
        public static System.Guid PublicationId(this IDataReader<PropertyExpression.ControllableQuery.Test.IModelPublicationInfo> it)
        {
            return it.GetValue(publicationId);
        }

        private static readonly Expression<Func<PropertyExpression.ControllableQuery.Test.IModelPublicationInfo, PropertyExpression.ControllableQuery.Test.NVarChar<PropertyExpression.ControllableQuery.Test.L20>>> modelCode = _ => _.ModelCode;
        public static PropertyExpression.ControllableQuery.Test.NVarChar<PropertyExpression.ControllableQuery.Test.L20> ModelCode(this IDataReader<PropertyExpression.ControllableQuery.Test.IModelPublicationInfo> it)
        {
            return it.GetValue(modelCode);
        }

        private static readonly Expression<Func<PropertyExpression.ControllableQuery.Test.IModelPublicationInfo, PropertyExpression.ControllableQuery.Test.NVarChar<PropertyExpression.ControllableQuery.Test.L2>>> modelSequence = _ => _.ModelSequence;
        public static PropertyExpression.ControllableQuery.Test.NVarChar<PropertyExpression.ControllableQuery.Test.L2> ModelSequence(this IDataReader<PropertyExpression.ControllableQuery.Test.IModelPublicationInfo> it)
        {
            return it.GetValue(modelSequence);
        }

    }
}
